home *** CD-ROM | disk | FTP | other *** search
/ CD Practico: Seleccion De Shareware / CD Practico: Seleccion de Shareware.iso / SOFCAS / UTIL / ACCESO2M.ZIP / ACCESO2M.ESP < prev    next >
Text File  |  1997-01-01  |  11KB  |  249 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.          =============================================================
  10.                                     ACCESO 2M
  11.          =============================================================
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.          -------------------------------------------------------------
  21.                                    Contenido                          
  22.          -------------------------------------------------------------
  23.           
  24.          0. Limitación de la garantía
  25.           
  26.          1. Marcas registradas
  27.           
  28.          2. Introducción
  29.           
  30.          3. Requerimientos
  31.           
  32.          4. Uso de ACCESO 2M
  33.           
  34.          5. Preguntas y respuestas
  35.           
  36.          6. Comentarios finales
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.          -------------------------------------------------------------
  46.          0. Limitación de la garantía
  47.          -------------------------------------------------------------
  48.           
  49.               ACCESO 2M  ha  sido probado en varios equipos con éxito,
  50.          pero no se  puede garantizar que  su  funcionamiento  sea  el
  51.          correcto bajo todas las configuraciones en otros equipos. Por
  52.          tanto úsalo a tu propio riesgo.
  53.           
  54.               ACCESO 2M  es software gratuito y se permite  su  uso  y
  55.          copia por cualquier  persona  siempre  y  cuando  se mantenga
  56.          inalterado el fichero  ejecutable   y   que   se  distribuyan
  57.          conjuntamente el ejecutable y los ficheros de documentación.
  58.  
  59.  
  60.  
  61.  
  62.          -------------------------------------------------------------
  63.          1. Marcas registradas
  64.          -------------------------------------------------------------
  65.           
  66.               MS-DOS, WINDOWS  y  WINDOWS95 son marcas registradas  de
  67.          Microsoft Corporation
  68.           
  69.               DELPHI es marca registrada de Borland Inc.
  70.  
  71.  
  72.  
  73.  
  74.          -------------------------------------------------------------
  75.          2. Introducción
  76.          -------------------------------------------------------------
  77.           
  78.               ACCESO 2M  sirve  para extraer ficheros  de  los  discos
  79.          formateados con 2M  sin  tener  que  abandonar Windows95 para
  80.          ello.
  81.  
  82.  
  83.  
  84.  
  85.          -------------------------------------------------------------
  86.          3. Requerimientos
  87.          -------------------------------------------------------------
  88.           
  89.               El programa  está  pensado  para  usarse bajo Windows95,
  90.          pero, como el  compilador  usado   produce  ejecutables  para
  91.          Windows convencional, también  funciona bajo Windows  en  sus
  92.          versiones 3.1 y  3.11  aunque  sea  absurdo  porque  2M opera
  93.          perfectamente en dichas  versiones.  Se  necesitan  300Kb  de
  94.          memoria libre para  cargar  el  programa,  64Kb   de  memoria
  95.          convencional para un  buffer de transferencia intermedio y un
  96.          15% de la capacidad del disco que se esté leyendo como caché.
  97.           
  98.               Se necesita  que 2M esté  cargado  antes  de  entrar  en
  99.          Windows95 y que   esté  usando  la  interrupción   40h.   Las
  100.          versiones de 2M  que  se  admiten  son la 2.1 y la 3.0; estas
  101.          versiones de 2M usan la interrupción  40h  si  determinan que
  102.          los accesos a los disquetes pasan por ella. Si  esto no fuese
  103.          así se puede  intentar  cargar  los  programas residentes que
  104.          actúan sobre los disquetes en otro orden.
  105.           
  106.               ACCESO 2M sólo funciona  con  disquetes  que  posean 512
  107.          bytes (lógicos, no necesariamente físicos)  por  sector  y  1
  108.          sector por cluster; todos los discos formateados por 2MF usan
  109.          este formato por defecto.
  110.  
  111.  
  112.  
  113.  
  114.          -------------------------------------------------------------
  115.          4. Uso de ACCESO 2M
  116.          -------------------------------------------------------------
  117.  
  118.               El manejo  de  ACCESO  2M  es  trivial e inmediato. Cabe
  119.          destacar que no se pueden seleccionar  múltiples  ficheros  y
  120.          que si el disco presenta algún error en las zonas del sistema
  121.          (FAT, directorio raíz)  o el área de los subdirectorios  será
  122.          imposible extraer los ficheros de él.
  123.  
  124.  
  125.  
  126.  
  127.          -------------------------------------------------------------
  128.          5. Preguntas y respuestas
  129.          -------------------------------------------------------------
  130.           
  131.               * ¿Por qué ocupa tanto ACCESO 2M?
  132.               * ¿En qué lenguaje está programado?
  133.           
  134.               - Porque ha sido programado usando un lenguaje  visual y
  135.          todos sabemos lo  bonitos  que son, lo fácil que es programar
  136.          con ellos y los extensos que resultan los ejecutables. A modo
  137.          de ejemplo, tan sólo el código  y  los datos que gestionan el
  138.          panel de los archivos ya ocupa 50Kb. Programando sin la ayuda
  139.          de los controles  el ejecutable hubiese sido  mucho  menor  y
  140.          hubiese sido mucho más costosa su programación.
  141.           
  142.               - ACCESO  2M  está  programado  en Delphi con un pequeño
  143.          fragmento en ensamblador.
  144.           
  145.               * ¿Por qué ACCESO 2M no permite  escribir en los discos?
  146.               * ¿Existirá algún día una versión que lo permita?
  147.           
  148.               - Sencillamente porque el acceso a los discos  se hace a
  149.          nivel de sectores  y ya es bastante tedioso tener que obtener
  150.          los sectores en los que está situado determinado fichero para
  151.          luego leerlo. El proceso de escribir  un  fichero  ya  es más
  152.          costoso y se  trata de escribir un programa "para  salir  del
  153.          paso" no de  reprogramar las rutinas de acceso a ficheros del
  154.          MS-DOS.
  155.           
  156.               - Seguramente no existirá  nunca una versión que permita
  157.          escribir los discos 2M.
  158.           
  159.               * ¿Cuál es el truco?
  160.               * ¿Cómo funciona ACCESO 2M?
  161.               * ¿Cómo se comunica con 2M?
  162.           
  163.               - Bueno, el truco es muy simple. Windows95  utiliza  sus
  164.          drivers de modo  protegido  para  acceder a los disquetes sin
  165.          tener en cuenta a la BIOS ni a  los  programas residentes del
  166.          MS-DOS que subyace bajo él, aunque estos programas  continúan
  167.          en la memoria  convencional y son perfectamente accesibles si
  168.          se les llama sin usar interrupciones.
  169.           
  170.               Este es precisamente el proceso,  se usa la función DPMI
  171.          "Simulate Real Mode  Call  Far  With  Iret  Frame"  (Int  31h
  172.          AX=0302h) usando la  dirección de la interrupción 40h con una
  173.          estructura de registros  adecuada  para  que  la dirección de
  174.          transferencia de los  datos del  disco  a  leer  esté  en  la
  175.          memoria convencional en  un  buffer  que  previamente   hemos
  176.          solicitado a Windows  con  la función GlobalDOSAlloc. Tras la
  177.          transferencia copiamos el  contenido  del  buffer  a  memoria
  178.          accesible directamente por el programa.  O sea, que lo que se
  179.          hace es como si en modo real o virtual86 hubiésemos llamado a
  180.          la interrupción 40h  pero  con  la  pareja  de  instrucciones
  181.          pushf/call far, y,  por  cierto  que  este mecanismo se puede
  182.          usar si cargamos 2M en una ventana de MS-DOS y nos fabricamos
  183.          un programa que use la interrupción  13h  que será la que use
  184.          2M en dichas circunstancias.
  185.           
  186.               * ¿Por qué no usas la interrupción 13h en  lugar  de  la
  187.          40h?
  188.           
  189.               - Porque  Windows95 al ejecutarse desvía el vector de la
  190.          interrupción 40h y le hace apuntar a una instrucción del tipo
  191.          "arpl ..." por  si  algún  programa   intenta   llamar  a  la
  192.          interrupción 13h con pushf/call far. Lógicamente la ejecución
  193.          de la instrucción   arpl  en  modo  virtual86   produce   una
  194.          excepción que intercepta  Windows95 y procede a acceder a los
  195.          discos usando sus drivers de modo protegido y nunca refleja a
  196.          modo virtual86 la interrupción 13h ni la 40h. Si llamase a la
  197.          interrupción 13h con este proceso el resultado sería el mismo
  198.          que si se intentase acceder normalmente a los disquetes.
  199.           
  200.           
  201.               * ¿Cómo se determina la presencia de 2M?
  202.           
  203.               - Uso  el  mismo  proceso  descrito  para  llamar  a  la
  204.          interrupción 40h con la 2Fh y examino la memoria convencional
  205.          usando selectores obtenidos mediante la función DPMI "Segment
  206.          to Selector" (Int 31h AX=0002h) en el caso de  que la llamada
  207.          la reciba algún  programa  que  usa el convenio CiriSOFT. Por
  208.          cierto que en la documentación  del  Delphi  sobre el DPMI de
  209.          Windows dice que  esta  función  no  se  debe usar,  pero  no
  210.          encontraba otra forma  de  obtener selectores que apuntasen a
  211.          la memoria convencional y este  método  funciona y no produce
  212.          ningún perjuicio (que yo sepa).
  213.           
  214.               * ¿Está disponible el código fuente?
  215.           
  216.               - No.  Salvo  el truco para acceder a 2M  el  resto  del
  217.          código es programación  convencional  que  no  tiene  nada de
  218.          especial, está sin comentar y no es en absoluto instructivo.
  219.           
  220.               * ¿Qué es eso del caché?
  221.           
  222.               - ACCESO 2M siempre trata  de  leer del disco por pistas
  223.          enteras para agilizar el proceso de lectura (yo considero una
  224.          pista la porción de cilindro que queda en una  cara,  o  sea,
  225.          que un disco  normal  de  1440Kb  tiene  80  cilindros  y 160
  226.          pistas). Se utiliza un caché organizado  por pistas en el que
  227.          se mantienen las  últimas  leídas  y  de  tamaño el 15% de la
  228.          capacidad total del disco, que  provee  el  sector solicitado
  229.          por las funciones de lectura.
  230.           
  231.               Si la pista en la que reside el sector presenta un error
  232.          se intenta leer el sector aislado que se solicitó  y  si esto
  233.          tampoco fuera posible  se  informa del error y se concluye la
  234.          tarea que se estuviese realizando.   Por  esta  razón  no  es
  235.          posible leer de un disquete que tenga defectuoso un sector en
  236.          el que resida parte de un subdirectorio porque siempre se lee
  237.          todo el árbol de directorios.
  238.  
  239.  
  240.  
  241.  
  242.          -------------------------------------------------------------
  243.          6. Comentarios finales
  244.          -------------------------------------------------------------
  245.           
  246.               + Este programa está especialmente  dedicado  a  Ciriaco
  247.          García de Celis, autor de 2M.
  248.  
  249.